package org.ddl.core.strategy;

import org.ddl.core.entity.DataSourceTable;

/**
 * 分库算法接口
 * 
 * @author yinjianwei
 * @date 2017年9月11日 下午11:03:10
 *
 */
public interface DataSourceShardStrategy {
	/**
	 * 分库策略
	 * 
	 * @return
	 */
	public String getShardType();

	/**
	 * 实现具体的分库计算逻辑
	 * 
	 * @param logicDataSource
	 *            分表名前缀
	 * @param dataSourceShardNum
	 *            分库数量
	 * @param shardValue
	 *            分库字段值
	 * @return
	 */
	public DataSourceTable handle(String logicDataSource, int dataSourceShardNum, Long shardValue);
}
